package com.harmony.pilot.common.dto;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

/**
 * 代码分析结果
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AnalysisResult implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    /**
     * 问题列表
     */
    private List<Issue> issues;
    
    /**
     * 总体评分（0-100）
     */
    private Integer score;
    
    /**
     * 分析摘要
     */
    private String summary;
    
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class Issue implements Serializable {
        
        private static final long serialVersionUID = 1L;
        
        /**
         * 问题ID
         */
        private String id;
        
        /**
         * 问题类型
         */
        private String type;
        
        /**
         * 严重级别
         */
        private String severity;
        
        /**
         * 问题描述
         */
        private String message;
        
        /**
         * 文件路径
         */
        private String filePath;
        
        /**
         * 起始行号
         */
        private Integer startLine;
        
        /**
         * 结束行号
         */
        private Integer endLine;
        
        /**
         * 起始列号
         */
        private Integer startColumn;
        
        /**
         * 结束列号
         */
        private Integer endColumn;
        
        /**
         * 修复建议
         */
        private String fixSuggestion;
        
        /**
         * 修复代码
         */
        private String fixCode;
        
        /**
         * 规则ID
         */
        private String ruleId;
        
        /**
         * 来源（codeql, llm, static）
         */
        private String source;
    }
}

